package com.bonuo.saas.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 工单实体类
 * @author doubao
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class WorkOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 工单ID */
    private Integer id;

    /** 代理商ID */
    private Integer agentId;

    /** 客户ID */
    private Integer clientId;

    /** 院系ID */
    private Integer facultyId;

    /** 产教融合任务单ID */
    private Integer industryEducationId;

    /** 菜单类型（1.售后管理    2.产教融合） */
    private Integer menuType;

    /** 预算金额 */
    private BigDecimal amount;

    /** 工单类型（调试验收、售后走访、现场维修、培训大赛） */
    private String type;

    /** 工单来源（客户、合作伙伴） */
    private String source;

    /** 项目编号 */
    private String projectNo;

    /** 项目名称 */
    private String projectName;

    /** 客户/合作伙伴 名称 */
    private String name;

    /** 二级部门 */
    private String secondarySector;

    /** 联系人名称 */
    private String contactName;

    /** 联系人电话 */
    private String contactPhone;

    /** 地址 */
    private String address;

    /** 产品 */
    private String product;

    /** 服务内容（安装、维修、走访、培训、大赛） */
    private String serviceContent;

    /** 计划时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planTime;

    /** 描述 */
    private String description;

    /** 负责人ID */
    private Integer principalId;

    /** 协同人ID */
    private Integer synergyId;

    /** 工单状态（待分配、已指派、已接受、进行中、已完成、已暂停） */
    private String status;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date finishTime;

    /** 逻辑删除（0未删除 1已删除） */
    private Integer delFlag;

    /** 备注 */
    private String remark;


    /** 负责人名称 */
    private String principalName;
    /** 协同人名称 */
    private String synergyName;


    /** 协同人ID数组 */
    private List<Integer> synergyIds;

    /** 项目状态 */
    private Integer schedule;

    /** 项目ID */
    private Integer projectId;
}